n=int(input())
d=dict()
for i in range(n):
x,y=map(int,input().split())
d[x]=y
m=int(input())
for i in range(m):
x,y=map(int,input().split())
if x in d:
d[x]=max(y,d.get(x))
else:
d[x]=y
print(sum(d.values()))
#include <bits/stdc++.h>
using namespace std;
#define ll long long
map <ll, pair<ll, ll> > m;
int main() {
ll n;
cin >> n;
ll a[n], x[n];
ll ans = 0;
for(ll i = 0; i < n; i++) {
cin >> a[i] >> x[i];
ans += x[i];
m[a[i]] = make_pair(1, x[i]);
}
ll q;
cin >> q;
ll b[q], y[q];
for(ll i = 0; i < q; i++) {
cin >> b[i] >> y[i];
if(m[b[i]].first == 1) {
if(y[i] > m[b[i]].second) {
ans -= m[b[i]].second;
ans += y[i];
}
}
else {
ans += y[i];
}
}
cout << ans;
}
1699A - The Third Three Number Problem | 1617B - GCD Problem |
841A - Generous Kefa | 1690B - Array Decrements |
1692C - Where's the Bishop | 104A - Blackjack |
1438A - Specific Tastes of Andre | 1711C - Color the Picture |
1194C - From S To T | 110B - Lucky String |
1114A - Got Any Grapes | 224B - Array |
125B - Simple XML | 567B - Berland National Library |
431B - Shower Line | 282C - XOR and OR |
1582B - Luntik and Subsequences | 609A - Флеш-карты |
1207A - There Are Two Types Of Burgers | 371C - Hamburgers |
343B - Alternating Current | 758B - Blown Garland |
1681B - Card Trick | 1592A - Gamer Hemose |
493D - Vasya and Chess | 1485A - Add and Divide |
337B - Routine Problem | 1392D - Omkar and Bed Wars |
76E - Points | 762C - Two strings |